\documentclass[12pt]{article}
\usepackage{a4wide}

\newcommand*\wrapletters[1]{\wr@pletters#1\@nil}
 \def\wr@pletters#1#2\@nil{#1\allowbreak\if&#2&\else\wr@pletters#2\@nil\fi}
 
\parindent 0pt
\parskip 6pt

\begin{document}

\thispagestyle{empty}

\rightline{\large\emph{Matthew Thomson}}
\medskip
\rightline{\large\emph{Gonville and Caius College}}
\medskip
\rightline{\large\emph{mt521}}

\vfil

\centerline{\large Part II Project Proposal}
\vspace{0.4in}
\centerline{\Large\bf Dolphin: Networking using sound}
\vspace{0.3in}
\centerline{\large 06/09/2012}

\vfil

{\bf Project Originator:} Matthew Thomson

\vspace{0.1in}

{\bf Resources Required:} See attached Project Resource Form

\vspace{0.5in}

{\bf Project Supervisor:} Oliver R. A. Chick

\vspace{0.2in}

{\bf Signature:}

\vspace{0.5in}

{\bf Director of Studies:}  Graham Titmus and Peter Robinson

\vspace{0.2in}

{\bf Signature:}

\vspace{0.5in}

{\bf Overseers:} Peter Robinson and Robert Watson

\vspace{0.2in}

{\bf Signatures:}

\vfil
\newpage


\section*{Introduction and Description of the Work}

A mobile phone has various ways of transmitting data to another mobile phone:
e-mail via WiFi or 3G; Bluetooth; multimedia messages; moving a portable storage
card from one phone to the other; or, in some older models, infrared. An
alternative is using QR codes, which can contain contact information, text
files, web-addresses and more. QR codes have become popular with smartphone
users [1] but have their limitations such as needing to be relatively close to
it depending on the size and requiring a steady camera. Not all phones have
cameras attached, nor Bluetooth or portable storage, so the options to send data
become limited. All phones do, however, have microphones and speakers so
networking using sound can achieve the popularity of QR codes with wider
compatibility.

When sending larger files QR codes contain a link to the file on an Internet
server. Users are often reluctant to spend money on mobile internet connections
to get the file [2] so sending the file itself would be preferable. It is easier
to scale an audio encoding than a visual QR code as more information would mean
a longer sound rather than a larger QR code which could grow to several metres
and would be difficult to display.

Previous work in this field includes \emph{SSTV}, which involves encoding a
single image frame as a series of modulated sound waves in voice (audible)
frequencies. With the Internet becoming ubiquitous, SSTV is now rarely used.
However, I intend to adapt the principles of SSTV to allow an arbitrary bit
stream to be transferred over sound.


\section*{Resources Required}

Two rooted Android mobile phones will be required for testing the mobile
application.


\section*{Starting Point}

The IB lecture course \emph{Computer Networking} contained information on the
OSI layer model, part of which I will be implementing for this project. The Part
II courses \emph{Digital Signal Processing} and \emph{Mobile and Sensor Systems}
also contain relevent information on transferring data wirelessly.


\section*{Substance and Structure of the Project}

The project involves writing software to to build a physical layer and data link
layer for a mobile device that uses audible sound as the transfer medium. As I
will be using the existing Android network stack the software will allow
existing code to use sound transparently. The new data link layer will
be used for handling data collision. Using OSI layers means any data from higher
layers can be sent, including SSTV images, TCP and UDP packets, IP packets and
more.

I will make and read the sounds using Java as that is the language Android uses
for applications. There are several standard libraries in Java that can be used
to create tones at specific frequencies\footnotemark. The simplest way to encode
bits as sound would be to assign one frequency to 0 and another to 1. As there
are 20,000 frequencies in the range of human hearing a better way would be to
assign frequencies to bit sequences, encoding multiple bytes in the same tone.
Existing wireless systems such as WiFi and Bluetooth work the same way using
radio rather than acoustic frequencies [3].

\footnotetext{Java: javax.Sound; AudioFormat; AudioInputStream; AudioFileWriter;
SoundBank. Android: ToneGenerator}

An extension to the project will be improving the medium access control.
Initially only one phone will be able to send data at a time so this
extension will use frequency/code division multiplexing to allow multiple
phones to send data simultaneously. A further extension will be to make the
communication full duplex.

The main contributions of this project will be:

\begin{enumerate}

\item A study of the current techniques available to convert data to sound,
and vice versa, including how much bandwidth these techniques use with
multiplexing potential in mind.

\item Developing and testing the code for converting bits into sound

\item Developing and testing the code for converting sound into bits

\item Evaluation of throughput and error rates

\end{enumerate}

If time allows I will attempt to implement medium access control.


\section*{References}
\begin{description}
\item {[1]} \emph{Thinking About Technology: Standard Barcodes Beware -
Smartphone Users May Prefer QR Barcodes}, D. W. Jackson, Law Journal, 103 LAW
LIBR. J. 153 (2011) \\
({\tt
\wrapletters{http://heinonline.org/HOL/Page?handle=hein.journals/llj103\&g\_sent=1\&collection=journals\&id=153}})

\item {[2]} \emph{The level of student engagement with QR Codes: Findings from
a cross institutional survey}, A.
Ramsden, Working Paper, University of Bath \\
({\tt
\wrapletters{http://opus.bath.ac.uk/19974/1/students\_qr\_codes\_cross\_ints\_survey\_2010.pdf}})

\item {[3]} \emph{Analogy of Promising Wireless Technologies on Different
Frequencies: Bluetooth, WiFi, and WiMAX}, Sanjeev Dhawan, Kurukshetra
University, (K.U.K)-136118 \\
({\tt
\wrapletters{http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=\&arnumber=4299663}})

%\item {[4]} \emph{Title}, Author, Type, Institution \\
%({\tt http://address})

\end{description}


\section*{Success Criteria}

The following should be achieved:

\begin{itemize}

\item An additional physical and data link layer for Android

\item Convert a bitstream into a sound representation, at the sender

\item Convert a sound into a bitstream, at the receiver

\item An evaluation of transfer rates, and link reliability

\item A complete dissertation

\end{itemize}

Extensions:

\begin{itemize}

\item Implement and evaluate multiplexing data in the sound

\item Modify the protocols to allow full duplex communication

\end{itemize}


\section*{Timetable and Milestones}

\subsection*{Fortnight 0, ends 19 October 2012}

Find and write practise code using Java audio libraries. Set up Android
environment.


\subsection*{Fortnight 1, ends 2 November 2012}

Study SSTV standards. Investigate the mapping between pixels and frequencies.
Study Kansas City Standard for storing data on cassette tapes. Revise theory on
multiplexing signals.


\subsection*{Fortnight 2, ends 16 November 2012}

Begin coding.

Milestone: Create code for encoding/decoding small bit sequences as distinct
sounds.


\subsection*{Fortnight 3, ends 30 November 2012}

Begin code for converting bit sequences into sounds.

Milestone: Can encode any bit sequence reliably, purpose of sequence is
irrelevant.


\subsection*{Fortnight 4, ends 14 December 2012}

Begin code for converting sounds into bits.

Milestone: Can decode any bit sequence reliably.


\subsection*{Vacation Work, ends 11 January 2013}

Write automated test harness. Begin tests. Fix bugs. Begin evaluation of
results.

Milestone: Test harness functional.


\subsection*{Fortnight 5, ends 25 January 2013}

Continue Evaluation. Graph useful data and any results of particular interest.


\subsection*{Fortnight 6, ends 8 February 2013}

Start extension.


\subsection*{Fortnight 7, ends 22 February 2013}

Complete extension. Write Introduction, Preparation.

Milestones: Introduction and Preparation complete.


\subsection*{Fortnight 8, ends 8 March 2013}

Write Implementation. Start writing up evaluation.

Milestone: Implementation complete.


\subsection*{Fortnight 9, ends 22 March 2013}

Write up evaluation and conclusion. Finish dissertation.

Milestone: Deliver complete draft dissertation to supervisor.


\subsection*{Vacation Work, ends 19 April 2013}

Revise disseration.


\subsection*{Complete, 17 May 2013}

Submit dissertation.

Milestone: Submitted dissertation.


\end{document}
